import 'dart:convert';

T? asT<T>(dynamic value) {
  if (value is T) {
    return value;
  }
  return null;
}

class AcStrategyModel {
  AcStrategyModel({
    this.isMatchCallFree,
    this.initTab,
    this.isShowMatchGender,
    this.genderMatchCoin,
    this.isReviewPkg,
    this.isShowLP,
    this.lpDiscount,
    this.lpPromotionDiscount,
    this.payChannels,
    this.isMaskOpen,
    this.isShowBroadcasterRank,
    this.isAutoAccept,
    this.broadcasterWallTags,
    this.tabType,
    this.isOpenBroacasterInvitation,
    this.isOpenFlashChat,
    this.videoStreamCategory,
    this.flashChatConfig,
    this.isShowMatch,
    this.isNewTppUsable,
    this.userInvitation,
    this.topOfficialUserIds,
    this.reviewOfficialBlacklistUserIds,
    this.officialBlacklistUserIds,
    this.imIncentiveBlacklistUserIds,
    this.broadcasterFollowOfficialUserIds,
    this.isDisplayNotDisturbCall,
    this.isDisplayNotDisturbIm,
    this.imSessionBalance,
    this.isShowFlowInfo,
    this.isShowDeletedButton,
    this.broadcasterWallTagList,
    this.freeUserCallStaySecond,
    this.freeUserImStaySecond,
    this.rechargeUserCallStaySecond,
    this.rechargeUserImStaySecond,
    this.isRandomUploadPaidEvents,
    this.isSwitchIMLimit,
    this.isSwitchOneKeyFollow,
    this.isSwitchIMIncentive,
    this.isSwitchClub,
    this.isShowRookieGuide,
    this.isSwitchStrongGuide,
    this.isCallRearCamera,
    this.isCallCameraClose,
    this.isShowAutoTranslate,
    this.isSilence,
    this.isRearCamera,
    this.isCloseCamera,
    this.isSwitchInstruct,
    this.isForceEvaluationInstruct,
    this.isSwitchExtraCategory,
    this.isSwitchMultipleCall,
    this.timestamp,
    this.sayHiMaxCount,
    this.sayHiQuickPhrases,
    this.userServiceAccountId,
    this.broadcasterWallRegions,
    this.userMultipleLevel,
    this.isReportFB,
    this.isEnableGuardian,
    this.isEnableCallCard,
    this.isOpenSpeechToText,
    this.voiceToTextConfig,
    this.isEnableGroupSend,
    this.supportShowRoom,
    this.newRelationMsgSizeLimit,
    this.unansweredGreetingExpireTTLHour,
    this.isOpenFlashChatOnRole,
    this.broadcasterOnlineButton,
    this.indianWallUnlock,
    this.imSessionBroadcasterIds,
  });

  factory AcStrategyModel.fromJson(Map<String, dynamic> json) {
    final List<String>? payChannels =
    json['payChannels'] is List ? <String>[] : null;
    if (payChannels != null) {
      for (final dynamic item in json['payChannels']!) {
        if (item != null) {
          payChannels.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? broadcasterWallTags =
    json['broadcasterWallTags'] is List ? <String>[] : null;
    if (broadcasterWallTags != null) {
      for (final dynamic item in json['broadcasterWallTags']!) {
        if (item != null) {
          broadcasterWallTags.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? videoStreamCategory =
    json['videoStreamCategory'] is List ? <String>[] : null;
    if (videoStreamCategory != null) {
      for (final dynamic item in json['videoStreamCategory']!) {
        if (item != null) {
          videoStreamCategory.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? topOfficialUserIds =
    json['topOfficialUserIds'] is List ? <String>[] : null;
    if (topOfficialUserIds != null) {
      for (final dynamic item in json['topOfficialUserIds']!) {
        if (item != null) {
          topOfficialUserIds.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? reviewOfficialBlacklistUserIds =
    json['reviewOfficialBlacklistUserIds'] is List ? <String>[] : null;
    if (reviewOfficialBlacklistUserIds != null) {
      for (final dynamic item in json['reviewOfficialBlacklistUserIds']!) {
        if (item != null) {
          reviewOfficialBlacklistUserIds.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? officialBlacklistUserIds =
    json['officialBlacklistUserIds'] is List ? <String>[] : null;
    if (officialBlacklistUserIds != null) {
      for (final dynamic item in json['officialBlacklistUserIds']!) {
        if (item != null) {
          officialBlacklistUserIds.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? imIncentiveBlacklistUserIds =
    json['imIncentiveBlacklistUserIds'] is List ? <String>[] : null;
    if (imIncentiveBlacklistUserIds != null) {
      for (final dynamic item in json['imIncentiveBlacklistUserIds']!) {
        if (item != null) {
          imIncentiveBlacklistUserIds.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? broadcasterFollowOfficialUserIds =
    json['broadcasterFollowOfficialUserIds'] is List ? <String>[] : null;
    if (broadcasterFollowOfficialUserIds != null) {
      for (final dynamic item in json['broadcasterFollowOfficialUserIds']!) {
        if (item != null) {
          broadcasterFollowOfficialUserIds.add(asT<String>(item)!);
        }
      }
    }

    final List<Broadcasterwalltaglist>? broadcasterWallTagList =
    json['broadcasterWallTagList'] is List
        ? <Broadcasterwalltaglist>[]
        : null;
    if (broadcasterWallTagList != null) {
      for (final dynamic item in json['broadcasterWallTagList']!) {
        if (item != null) {
          broadcasterWallTagList.add(Broadcasterwalltaglist.fromJson(
              asT<Map<String, dynamic>>(item)!));
        }
      }
    }

    final List<String>? sayHiQuickPhrases =
    json['sayHiQuickPhrases'] is List ? <String>[] : null;
    if (sayHiQuickPhrases != null) {
      for (final dynamic item in json['sayHiQuickPhrases']!) {
        if (item != null) {
          sayHiQuickPhrases.add(asT<String>(item)!);
        }
      }
    }

    final List<String>? broadcasterWallRegions =
    json['broadcasterWallRegions'] is List ? <String>[] : null;
    if (broadcasterWallRegions != null) {
      for (final dynamic item in json['broadcasterWallRegions']!) {
        if (item != null) {
          broadcasterWallRegions.add(asT<String>(item)!);
        }
      }
    }

    final List<Object>? imSessionBroadcasterIds =
    json['imSessionBroadcasterIds'] is List ? <Object>[] : null;
    if (imSessionBroadcasterIds != null) {
      for (final dynamic item in json['imSessionBroadcasterIds']!) {
        if (item != null) {
          imSessionBroadcasterIds.add(asT<Object>(item)!);
        }
      }
    }
    return AcStrategyModel(
      isMatchCallFree: asT<bool?>(json['isMatchCallFree']),
      initTab: asT<int?>(json['initTab']),
      isShowMatchGender: asT<bool?>(json['isShowMatchGender']),
      genderMatchCoin: json['genderMatchCoin'] == null
          ? null
          : Gendermatchcoin.fromJson(
          asT<Map<String, dynamic>>(json['genderMatchCoin'])!),
      isReviewPkg: asT<bool?>(json['isReviewPkg']),
      isShowLP: asT<bool?>(json['isShowLP']),
      lpDiscount: asT<int?>(json['lpDiscount']),
      lpPromotionDiscount: asT<int?>(json['lpPromotionDiscount']),
      payChannels: payChannels,
      isMaskOpen: asT<bool?>(json['isMaskOpen']),
      isShowBroadcasterRank: asT<bool?>(json['isShowBroadcasterRank']),
      isAutoAccept: asT<bool?>(json['isAutoAccept']),
      broadcasterWallTags: broadcasterWallTags,
      tabType: asT<int?>(json['tabType']),
      isOpenBroacasterInvitation:
      asT<bool?>(json['isOpenBroacasterInvitation']),
      isOpenFlashChat: asT<bool?>(json['isOpenFlashChat']),
      videoStreamCategory: videoStreamCategory,
      flashChatConfig: json['flashChatConfig'] == null
          ? null
          : Flashchatconfig.fromJson(
          asT<Map<String, dynamic>>(json['flashChatConfig'])!),
      isShowMatch: asT<bool?>(json['isShowMatch']),
      isNewTppUsable: asT<bool?>(json['isNewTppUsable']),
      userInvitation: json['userInvitation'] == null
          ? null
          : Userinvitation.fromJson(
          asT<Map<String, dynamic>>(json['userInvitation'])!),
      topOfficialUserIds: topOfficialUserIds,
      reviewOfficialBlacklistUserIds: reviewOfficialBlacklistUserIds,
      officialBlacklistUserIds: officialBlacklistUserIds,
      imIncentiveBlacklistUserIds: imIncentiveBlacklistUserIds,
      broadcasterFollowOfficialUserIds: broadcasterFollowOfficialUserIds,
      isDisplayNotDisturbCall: asT<bool?>(json['isDisplayNotDisturbCall']),
      isDisplayNotDisturbIm: asT<bool?>(json['isDisplayNotDisturbIm']),
      imSessionBalance: asT<int?>(json['imSessionBalance']),
      isShowFlowInfo: asT<bool?>(json['isShowFlowInfo']),
      isShowDeletedButton: asT<bool?>(json['isShowDeletedButton']),
      broadcasterWallTagList: broadcasterWallTagList,
      freeUserCallStaySecond: asT<String?>(json['freeUserCallStaySecond']),
      freeUserImStaySecond: asT<String?>(json['freeUserImStaySecond']),
      rechargeUserCallStaySecond:
      asT<String?>(json['rechargeUserCallStaySecond']),
      rechargeUserImStaySecond: asT<String?>(json['rechargeUserImStaySecond']),
      isRandomUploadPaidEvents: asT<bool?>(json['isRandomUploadPaidEvents']),
      isSwitchIMLimit: asT<bool?>(json['isSwitchIMLimit']),
      isSwitchOneKeyFollow: asT<bool?>(json['isSwitchOneKeyFollow']),
      isSwitchIMIncentive: asT<bool?>(json['isSwitchIMIncentive']),
      isSwitchClub: asT<bool?>(json['isSwitchClub']),
      isShowRookieGuide: asT<bool?>(json['isShowRookieGuide']),
      isSwitchStrongGuide: asT<bool?>(json['isSwitchStrongGuide']),
      isCallRearCamera: asT<bool?>(json['isCallRearCamera']),
      isCallCameraClose: asT<bool?>(json['isCallCameraClose']),
      isShowAutoTranslate: asT<bool?>(json['isShowAutoTranslate']),
      isSilence: asT<bool?>(json['isSilence']),
      isRearCamera: asT<bool?>(json['isRearCamera']),
      isCloseCamera: asT<bool?>(json['isCloseCamera']),
      isSwitchInstruct: asT<bool?>(json['isSwitchInstruct']),
      isForceEvaluationInstruct: asT<bool?>(json['isForceEvaluationInstruct']),
      isSwitchExtraCategory: asT<bool?>(json['isSwitchExtraCategory']),
      isSwitchMultipleCall: asT<bool?>(json['isSwitchMultipleCall']),
      timestamp: asT<String?>(json['timestamp']),
      sayHiMaxCount: asT<int?>(json['sayHiMaxCount']),
      sayHiQuickPhrases: sayHiQuickPhrases,
      userServiceAccountId: asT<String?>(json['userServiceAccountId']),
      broadcasterWallRegions: broadcasterWallRegions,
      userMultipleLevel: asT<int?>(json['userMultipleLevel']),
      isReportFB: asT<bool?>(json['isReportFB']),
      isEnableGuardian: asT<bool?>(json['isEnableGuardian']),
      isEnableCallCard: asT<bool?>(json['isEnableCallCard']),
      isOpenSpeechToText: asT<bool?>(json['isOpenSpeechToText']),
      voiceToTextConfig: json['voiceToTextConfig'] == null
          ? null
          : Voicetotextconfig.fromJson(
          asT<Map<String, dynamic>>(json['voiceToTextConfig'])!),
      isEnableGroupSend: asT<bool?>(json['isEnableGroupSend']),
      supportShowRoom: asT<bool?>(json['supportShowRoom']),
      newRelationMsgSizeLimit: asT<int?>(json['newRelationMsgSizeLimit']),
      unansweredGreetingExpireTTLHour:
      asT<int?>(json['unansweredGreetingExpireTTLHour']),
      isOpenFlashChatOnRole: asT<bool?>(json['isOpenFlashChatOnRole']),
      broadcasterOnlineButton: asT<String?>(json['broadcasterOnlineButton']),
      indianWallUnlock: asT<String?>(json['indianWallUnlock']),
      imSessionBroadcasterIds: imSessionBroadcasterIds,
    );
  }

  bool? isMatchCallFree;
  int? initTab;
  bool? isShowMatchGender;
  Gendermatchcoin? genderMatchCoin;
  bool? isReviewPkg;
  bool? isShowLP;
  int? lpDiscount;
  int? lpPromotionDiscount;
  List<String>? payChannels;
  bool? isMaskOpen;
  bool? isShowBroadcasterRank;
  bool? isAutoAccept;
  List<String>? broadcasterWallTags;
  int? tabType;
  bool? isOpenBroacasterInvitation;
  bool? isOpenFlashChat;
  List<String>? videoStreamCategory;
  Flashchatconfig? flashChatConfig;
  bool? isShowMatch;
  bool? isNewTppUsable;
  Userinvitation? userInvitation;
  List<String>? topOfficialUserIds;
  List<String>? reviewOfficialBlacklistUserIds;
  List<String>? officialBlacklistUserIds;
  List<String>? imIncentiveBlacklistUserIds;
  List<String>? broadcasterFollowOfficialUserIds;
  bool? isDisplayNotDisturbCall;
  bool? isDisplayNotDisturbIm;
  int? imSessionBalance;
  bool? isShowFlowInfo;
  bool? isShowDeletedButton;
  List<Broadcasterwalltaglist>? broadcasterWallTagList;
  String? freeUserCallStaySecond;
  String? freeUserImStaySecond;
  String? rechargeUserCallStaySecond;
  String? rechargeUserImStaySecond;
  bool? isRandomUploadPaidEvents;
  bool? isSwitchIMLimit;
  bool? isSwitchOneKeyFollow;
  bool? isSwitchIMIncentive;
  bool? isSwitchClub;
  bool? isShowRookieGuide;
  bool? isSwitchStrongGuide;
  bool? isCallRearCamera;
  bool? isCallCameraClose;
  bool? isShowAutoTranslate;
  bool? isSilence;
  bool? isRearCamera;
  bool? isCloseCamera;
  bool? isSwitchInstruct;
  bool? isForceEvaluationInstruct;
  bool? isSwitchExtraCategory;
  bool? isSwitchMultipleCall;
  String? timestamp;
  int? sayHiMaxCount;
  List<String>? sayHiQuickPhrases;
  String? userServiceAccountId;
  List<String>? broadcasterWallRegions;
  int? userMultipleLevel;
  bool? isReportFB;
  bool? isEnableGuardian;
  bool? isEnableCallCard;
  bool? isOpenSpeechToText;
  Voicetotextconfig? voiceToTextConfig;
  bool? isEnableGroupSend;
  bool? supportShowRoom;
  int? newRelationMsgSizeLimit;
  int? unansweredGreetingExpireTTLHour;
  bool? isOpenFlashChatOnRole;
  String? broadcasterOnlineButton;
  String? indianWallUnlock;
  List<Object>? imSessionBroadcasterIds;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
    'isMatchCallFree': isMatchCallFree,
    'initTab': initTab,
    'isShowMatchGender': isShowMatchGender,
    'genderMatchCoin': genderMatchCoin,
    'isReviewPkg': isReviewPkg,
    'isShowLP': isShowLP,
    'lpDiscount': lpDiscount,
    'lpPromotionDiscount': lpPromotionDiscount,
    'payChannels': payChannels,
    'isMaskOpen': isMaskOpen,
    'isShowBroadcasterRank': isShowBroadcasterRank,
    'isAutoAccept': isAutoAccept,
    'broadcasterWallTags': broadcasterWallTags,
    'tabType': tabType,
    'isOpenBroacasterInvitation': isOpenBroacasterInvitation,
    'isOpenFlashChat': isOpenFlashChat,
    'videoStreamCategory': videoStreamCategory,
    'flashChatConfig': flashChatConfig,
    'isShowMatch': isShowMatch,
    'isNewTppUsable': isNewTppUsable,
    'userInvitation': userInvitation,
    'topOfficialUserIds': topOfficialUserIds,
    'reviewOfficialBlacklistUserIds': reviewOfficialBlacklistUserIds,
    'officialBlacklistUserIds': officialBlacklistUserIds,
    'imIncentiveBlacklistUserIds': imIncentiveBlacklistUserIds,
    'broadcasterFollowOfficialUserIds': broadcasterFollowOfficialUserIds,
    'isDisplayNotDisturbCall': isDisplayNotDisturbCall,
    'isDisplayNotDisturbIm': isDisplayNotDisturbIm,
    'imSessionBalance': imSessionBalance,
    'isShowFlowInfo': isShowFlowInfo,
    'isShowDeletedButton': isShowDeletedButton,
    'broadcasterWallTagList': broadcasterWallTagList,
    'freeUserCallStaySecond': freeUserCallStaySecond,
    'freeUserImStaySecond': freeUserImStaySecond,
    'rechargeUserCallStaySecond': rechargeUserCallStaySecond,
    'rechargeUserImStaySecond': rechargeUserImStaySecond,
    'isRandomUploadPaidEvents': isRandomUploadPaidEvents,
    'isSwitchIMLimit': isSwitchIMLimit,
    'isSwitchOneKeyFollow': isSwitchOneKeyFollow,
    'isSwitchIMIncentive': isSwitchIMIncentive,
    'isSwitchClub': isSwitchClub,
    'isShowRookieGuide': isShowRookieGuide,
    'isSwitchStrongGuide': isSwitchStrongGuide,
    'isCallRearCamera': isCallRearCamera,
    'isCallCameraClose': isCallCameraClose,
    'isShowAutoTranslate': isShowAutoTranslate,
    'isSilence': isSilence,
    'isRearCamera': isRearCamera,
    'isCloseCamera': isCloseCamera,
    'isSwitchInstruct': isSwitchInstruct,
    'isForceEvaluationInstruct': isForceEvaluationInstruct,
    'isSwitchExtraCategory': isSwitchExtraCategory,
    'isSwitchMultipleCall': isSwitchMultipleCall,
    'timestamp': timestamp,
    'sayHiMaxCount': sayHiMaxCount,
    'sayHiQuickPhrases': sayHiQuickPhrases,
    'userServiceAccountId': userServiceAccountId,
    'broadcasterWallRegions': broadcasterWallRegions,
    'userMultipleLevel': userMultipleLevel,
    'isReportFB': isReportFB,
    'isEnableGuardian': isEnableGuardian,
    'isEnableCallCard': isEnableCallCard,
    'isOpenSpeechToText': isOpenSpeechToText,
    'voiceToTextConfig': voiceToTextConfig,
    'isEnableGroupSend': isEnableGroupSend,
    'supportShowRoom': supportShowRoom,
    'newRelationMsgSizeLimit': newRelationMsgSizeLimit,
    'unansweredGreetingExpireTTLHour': unansweredGreetingExpireTTLHour,
    'isOpenFlashChatOnRole': isOpenFlashChatOnRole,
    'broadcasterOnlineButton': broadcasterOnlineButton,
    'indianWallUnlock': indianWallUnlock,
    'imSessionBroadcasterIds': imSessionBroadcasterIds,
  };
}

class Gendermatchcoin {
  Gendermatchcoin({
    this.maleCoins,
    this.femaleCoins,
    this.bothCoins,
    this.vipGoddessCoins,
    this.goddessCoins,
  });

  factory Gendermatchcoin.fromJson(Map<String, dynamic> json) =>
      Gendermatchcoin(
        maleCoins: asT<int?>(json['maleCoins']),
        femaleCoins: asT<int?>(json['femaleCoins']),
        bothCoins: asT<int?>(json['bothCoins']),
        vipGoddessCoins: asT<int?>(json['vipGoddessCoins']),
        goddessCoins: asT<int?>(json['goddessCoins']),
      );

  int? maleCoins;
  int? femaleCoins;
  int? bothCoins;
  int? vipGoddessCoins;
  int? goddessCoins;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
    'maleCoins': maleCoins,
    'femaleCoins': femaleCoins,
    'bothCoins': bothCoins,
    'vipGoddessCoins': vipGoddessCoins,
    'goddessCoins': goddessCoins,
  };
}

class Flashchatconfig {
  Flashchatconfig({
    this.isSwitch,
    this.isFreeCall,
    this.residueFreeCallTimes,
  });

  factory Flashchatconfig.fromJson(Map<String, dynamic> json) =>
      Flashchatconfig(
        isSwitch: asT<bool?>(json['isSwitch']),
        isFreeCall: asT<bool?>(json['isFreeCall']),
        residueFreeCallTimes: asT<int?>(json['residueFreeCallTimes']),
      );

  bool? isSwitch;
  bool? isFreeCall;
  int? residueFreeCallTimes;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
    'isSwitch': isSwitch,
    'isFreeCall': isFreeCall,
    'residueFreeCallTimes': residueFreeCallTimes,
  };
}

class Userinvitation {
  Userinvitation({
    this.tipsTitle,
    this.tipsContent,
    this.popUpTitle,
    this.popUpContent,
    this.popUpBottom,
    this.shareContent,
  });

  factory Userinvitation.fromJson(Map<String, dynamic> json) => Userinvitation(
    tipsTitle: asT<String?>(json['tipsTitle']),
    tipsContent: asT<String?>(json['tipsContent']),
    popUpTitle: asT<String?>(json['popUpTitle']),
    popUpContent: asT<String?>(json['popUpContent']),
    popUpBottom: asT<String?>(json['popUpBottom']),
    shareContent: asT<String?>(json['shareContent']),
  );

  String? tipsTitle;
  String? tipsContent;
  String? popUpTitle;
  String? popUpContent;
  String? popUpBottom;
  String? shareContent;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
    'tipsTitle': tipsTitle,
    'tipsContent': tipsContent,
    'popUpTitle': popUpTitle,
    'popUpContent': popUpContent,
    'popUpBottom': popUpBottom,
    'shareContent': shareContent,
  };
}

class Broadcasterwalltaglist {
  Broadcasterwalltaglist({
    this.tagName,
    this.subTagList,
    this.showTagName,
    this.subTagInitIndex,
  });

  factory Broadcasterwalltaglist.fromJson(Map<String, dynamic> json) {
    final List<String>? subTagList =
    json['subTagList'] is List ? <String>[] : null;
    if (subTagList != null) {
      for (final dynamic item in json['subTagList']!) {
        if (item != null) {
          subTagList.add(asT<String>(item)!);
        }
      }
    }
    return Broadcasterwalltaglist(
      tagName: asT<String?>(json['tagName']),
      subTagList: subTagList,
      showTagName: asT<String?>(json['showTagName']),
      subTagInitIndex: asT<int?>(json['subTagInitIndex']),
    );
  }

  String? tagName;
  List<String>? subTagList;
  String? showTagName;
  int? subTagInitIndex;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
    'tagName': tagName,
    'subTagList': subTagList,
    'showTagName': showTagName,
    'subTagInitIndex': subTagInitIndex,
  };
}

class Voicetotextconfig {
  Voicetotextconfig({
    this.voiceToTextSwitch,
    this.voiceToTextUnitPrice,
  });

  factory Voicetotextconfig.fromJson(Map<String, dynamic> json) =>
      Voicetotextconfig(
        voiceToTextSwitch: asT<bool?>(json['voiceToTextSwitch']),
        voiceToTextUnitPrice: asT<int?>(json['voiceToTextUnitPrice']),
      );

  bool? voiceToTextSwitch;
  int? voiceToTextUnitPrice;

  @override
  String toString() {
    return jsonEncode(this);
  }

  Map<String, dynamic> toJson() => <String, dynamic>{
    'voiceToTextSwitch': voiceToTextSwitch,
    'voiceToTextUnitPrice': voiceToTextUnitPrice,
  };
}
